Detecting if communication endpoints are reachable in a contact center environment is critical. The contact center needs to have accurate information of whether an agent is reachable in order to know where to direct communications, such as, incoming voice calls. If an agent's availability information is unknown, calls may be routed to agents that are not available. The result is that calls may be lost or can remain in queues for a long duration of time. Lost calls and long wait times are revenue impacting events for the contact center.
Currently, a feature server for the contact center periodically polls all the communication endpoints in the contact center regardless if communication endpoints are reachable or not. A successful response implies that an agent's communication endpoint is reachable while no response indicates that an agent's communication endpoint is not reachable. In many cases, a network may have many routing elements. This results in multiple routes that may exist to the same communication endpoint. If the polling fails using one of the routes, the polling process tries to use the alternate routes. To prevent a temporary network glitch affecting whether the communication endpoint is reachable, this process has to be repeated multiple times to declare a communication endpoint reachable. This problem increases as contact centers become more distributed having multiple agents in multiple locations.
However, polling a communication endpoint multiple times can lead to high Central Processing Unit (CPU) usage during an outage condition. For example, in a distributed contact center, if a location comprising a large number of communication endpoints is unreachable because of a network failure, CPU usage may spike to 100%, even on an idle system or lightly loaded system. This can cause a service outage for the entire contact center, resulting in lost revenue for the contact center.